package com.huajx.ld.codec;

import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.AttributeKey;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;

/**
 * 抽象解码为字符串
 * 
 * @author xhye
 *
 */
public abstract class AbstractStringDecoderAdapter extends CumulativeProtocolDecoder{
	
	protected int header;
	
	/**
	 * 存放断包数据
	 */
	private final AttributeKey BUFFER = new AttributeKey(getClass(), "buffer");

	/**
	 * 进行数据解码操作
	 * 	 * doDecode方法
	 * 	 *
	 * 	 * doDecode方法一方面判断数据包是否符合解码要求（数据包可能过短，数据包格式不合要求都可能不能通过解码要求），不符合刚返回false；
	 * 	 * 另一方面对于符合解码要求的数据进行数据解码，并返回true。
	 * 	 * 可以参考ImageRequestDecoder类的实现。
	 *
	 * @param session
	 * @param in
	 * @param out
	 * @return
	 * @throws Exception
	 */
	@Override
	protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
		if(in.remaining() >= header){
			
		}
		return false;
	}
	
	protected abstract boolean checkIntegrity();

}
